"""
users的子路由模块
"""
from django.urls import path,re_path
from . import views

# 路由映射列表，子路由模块中必须有该全局变量
urlpatterns = [
    # 路由映射？
    # 在用户名重复注册接口实现中，明确：前端GET请求方式，配合着路径/usernames/用户名/count/，应该找UsernameCountView视图的self.get函数来处理此次请求
    # GET + /username/用户名/count/ = self.get
    # 路由映射公式：请求方式 + 请求路径 = 视图函数

    # 接口：判断用户名重复注册
    # re_path('^usernames/(?P<username>[a-zA-Z0-9_-]{5,20})/count/$', views.UsernameCountView.as_view()),
    path('usernames/<username:username>/count/', views.UsernameCountView.as_view()),
    # 接口：判断手机号重复注册
    path('mobiles/<mobile:mobile>/count/', views.MobileCountView.as_view()),
    # 接口：用户注册
    path('register/', views.RegisterView.as_view()),
    # 接口：传统登陆
    path('login/', views.LoginView.as_view()),
    # 接口：登出
    path('logout/', views.LogoutView.as_view()),
    # 接口：用户中心
    path('info/', views.UserInfoView.as_view()),
    # 邮箱接口1：更新邮箱
    path('emails/', views.EmailView.as_view()),
    # 邮箱接口2：激活邮箱
    path('emails/verification/', views.VerifyEmailView.as_view()),

    # 新增收获地址
    path('addresses/create/', views.CreateAddressView.as_view()),
    # 展示收获地址
    path('addresses/', views.AddressView.as_view()),
    # 更新/删除收货地址
    path('addresses/<int:address_id>/', views.UpdateDestroyAddressView.as_view()),
    # 设置默认地址
    path('addresses/<int:address_id>/default/', views.DefaultAddressView.as_view()),
    # 设置地址标题
    path('addresses/<int:address_id>/title/', views.UpdateTitleAddressView.as_view()),
    # 修改密码
    path('password/', views.ChangePasswordView.as_view()),
    # 记录用户浏览历史
    path('browse_histories/', views.UserBrowseHistory.as_view()),
]

